#pragma once
#include <time.h>
#include <vector>
#include "NodeMap.h"
#include "Utils.h"

//- Constants for NYC fare calculation
#define F_BASE_PRICE 2.50   //- $2.50 upon entry
#define F_PER_UNIT 0.40      //- $0.40 per unit (currently per minute)

/******************************************************************************
 * CFare Definition
 *****************************************************************************/

class CFare
{
public:
    CFare(CNode* start, CNode* end);
    ~CFare();
    void Start();

    CNode* GetStartNode();
    CNode* GetDestNode();
    double GetCharge();
    CSysTime GetTime();
    bool GetInProgress();
	CSysTime GetExpire();
    
    CNode* m_start;
    CNode* m_end;

private:
    CSysTime m_time;
	CSysTime m_expire;
    double m_charge;
    bool m_inProgress;
};

typedef std::vector<CFare*> CFarePtrVec;
typedef CFarePtrVec::iterator CFarePtrVecIter;
typedef CFarePtrVec::const_iterator CFarePtrVecCIter;